{
"$schema":"http://json-schema.org/draft/2020-12/schema",
"$id":"",
"$defs":{
    "environment":{
        "items":
        {
        "type":"string"
        },
        "type":"array"
    },
    "labels":{
        "items":{
            "type":"string"
        },
        "type":"array",
        "uniqueItems":true
    },
    "service":{
        "properties":{
            "image":{
                "type":"string"
            },
            "ports":{
                "items":{
                    "type":"string"
                },
                "type":"array"
            },
            "environment":{
                "$ref":"#/$defs/environment"
            },
            "labels":{
                "$ref":"#/$defs/labels"
                }
        },
        "additionalProperties":false,
        "type":"object",
        "required":["image"]
    },
    "services":{
        "patternProperties":{
            "^[a-zA-Z0-9._-]+$":{
                "$ref":"#/$defs/service"
                }
        },
        "additionalProperties":false,
        "type":"object"
    },
    "version":{
        "type":"string",
        "description":"Version of the Compose specification used. Tools not implementing required version MUST reject the configuration file."
        }
},
"properties":{
    "version":{
        "$ref":"#/$defs/version"
    },
    "services":{
        "$ref":"#/$defs/services"
    }
},
"additionalProperties":false,
"type":"object",
"required":["version","services"]
}